package com.itheima.a03genericsDemo3;

import java.util.ArrayList;

public class GenericsDemo3 {
    public static void main(String[] args) {
        ArrayList<Ye> list1 = new ArrayList<>();
        ArrayList<Fu> list2 = new ArrayList<>();
        ArrayList<Zi> list3 = new ArrayList<>();

        // 调用method方法
        method(list1);
        // 下方报错（泛型不具备继承性）
        // method(list2);
        // method(list3);

        // 数据具备继承性
        list1.add(new Ye());
        list1.add(new Fu());
        list1.add(new Zi());

        // 通配符
        method2(list1);
        method2(list2);
        method2(list3);

        method3(list1);
        method3(list2);
        method3(list3);
    }

    /*
    * 这里的泛型里面写的是什么类型，那就只能传递什么类型的数据
    * */
    public static void method(ArrayList<Ye> list){}

    public static void method2(ArrayList<? extends Ye> list){}

    public static void method3(ArrayList<? super Zi> list){}
}


class Ye{}

class Fu extends Ye{}

class Zi extends Fu{}